import java.util.Scanner;

public class Test {

    //加static修饰是为了不用实例化对象就可以使用该方法，简单化
    public static void func(int[] a) throws CloneNotSupportedException {
        if(a == null) {
            throw new CloneNotSupportedException() ;
        }
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
/*      3种方法 访问func
        1.
        Test test = new Test();
        test.func(null);*//*
        2.
        func(null);
        3.*/
        //Test.func(null);
        //利用 try catch进行捕获到异常
        try {
            //放有可能出现bug的代码
            func(null);
            System.out.println(10 / 0);
            //注意 try中多个异常 捕获到一个异常后 不在捕获其他的异常
            //catch中顺序无关
        }catch(ArithmeticException e) { //算数异常
            e.printStackTrace();
            System.out.println("算数异常");
        }
        catch(CloneNotSupportedException e) {
            //出现警告的部分
            e.printStackTrace();
            System.out.println("捕获到异常");
        }catch (NullPointerException e) {
            System.out.println("空指针异常");
        }finally {
            scanner.close();  //关闭从键盘获取的资源
            //通常就是资源的释放
        }
        System.out.println("正常的逻辑");
    }
}
